﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis;


namespace Admin.NET.Application.Entity;

/// <summary>
/// 招聘实体类
/// </summary>
[SugarTable("base_zhaopin", "招聘实体类")]
public class ZhaopinEntity : EntityBase
{
    /// <summary>
    /// 职位名称
    /// </summary>
    [SugarColumn(ColumnDescription = "职位名称", Length = 100, IsNullable = false)]
    public string Title { get; set; }

    /// <summary>
    /// 公司名称
    /// </summary>
    [SugarColumn(ColumnDescription = "公司名称", Length = 32, IsNullable = true)]
    public string Company { get; set; } 

    /// <summary>
    /// 所属用户的唯一标识符
    /// </summary>
    [SugarColumn(ColumnDescription = "所属用户ID", IsNullable = true)]
    public long? UserId { get; set; }

    /// <summary>
    /// 职位类型，例如“全职”、“兼职”、“实习”
    /// </summary>
    [SugarColumn(ColumnDescription = "职位类型", Length = 50, IsNullable = true)]
    public string JobType { get; set; }
    /// <summary>
    /// 标签
    /// </summary>
    [SugarColumn(ColumnDescription = "标签", Length = 200, IsNullable = true)]
    public string TagsJson { get; set; }

    /// <summary>
    /// 工作地点
    /// </summary>
    [SugarColumn(ColumnDescription = "工作地点", Length = 255, IsNullable = true)]
    public string Location { get; set; }

    /// <summary>
    /// 薪资下限
    /// </summary>
    [SugarColumn(ColumnDescription = "薪资下限",  IsNullable = true)]
    public int? MinSalary { get; set; }
    /// <summary>
    /// 薪资上限
    /// </summary>
    [SugarColumn(ColumnDescription = "薪资上限", IsNullable = true)]
    public int? MaxSalary { get; set; }
    /// <summary>
    /// 岗位职责描述
    /// </summary>
    [SugarColumn(ColumnDescription = "岗位职责", IsNullable = true)]
    public string Responsibilities { get; set; }

    /// <summary>
    /// 任职要求，例如学历、经验、技能等
    /// </summary>
    [SugarColumn(ColumnDescription = "任职要求", IsNullable = true)]
    public string Requirements { get; set; }

    /// <summary>
    /// 发布时间，默认为当前时间
    /// </summary>
    [SugarColumn(ColumnDescription = "发布时间", IsNullable = true)]
    public DateTime PostedDate { get; set; } = DateTime.Now;

    /// <summary>
    /// 招聘状态，100 进行中 200 已结束
    /// </summary>
    [SugarColumn(ColumnDescription = "招聘状态",  IsNullable = true)]
    public int? Status { get; set; }

    /// <summary>
    /// 公司头像
    /// </summary>
    [SugarColumn(ColumnDescription = "公司头像",Length =255, IsNullable = true)]
    public string Face { get; set; }

    /// <summary>
    /// 联系人联系电话集合
    /// </summary>
    [SugarColumn(ColumnDescription = "联系电话", Length = 200, IsNullable = true)]
    public string PhoneNumbers { get; set; }

    /// <summary>
    /// 学历要求
    /// </summary>
    [SugarColumn(ColumnDescription = "学历要求", Length = 20, IsNullable = true)]
    public string Education { get; set; }

    /// <summary>
    /// 经验要求
    /// </summary>
    [SugarColumn(ColumnDescription = "经验要求", Length = 20, IsNullable = true)]
    public string Experience { get; set; }

    /// <summary>
    /// 空间地址名称
    /// </summary>
    [SugarColumn(ColumnDescription = "地址名称", Length = 255, IsNullable = true)]
    public string AddressName { get; set; } 
    /// <summary>
    /// 空间位置
    /// </summary>
    [SugarColumn(ColumnDescription = "空间位置", Length = 32, IsNullable = true)]
    public string Position { get; set; }

    /// <summary>
    /// 浏览量
    /// </summary>
    [SugarColumn(ColumnDescription = "浏览量", IsNullable = true)]
    public int? ViewCount { get; set; }
}
